class Solution {
public:
    string countAndSay(int n) {
        string str = "1";
        for(int i = 1; i < n; i++)  // 解释 n-1 次 str 即可
        {
            string tmp;
            int len = str.size();
            for(int left = 0, right = 0; right < len; )
            {
                while(right < len && str[left] == str[right])
                    right++;
                tmp += to_string(right - left) + str[left];  // 解释 str
                left = right;   // 解释完前面一样的数字之后 只需 left 移动到 right 位置
            }
            str = tmp;
        }

        return str;
    }
};